using UnityEngine;

public class HideControllerOnPKeyPress : MonoBehaviour
{
   // 存储Main Camera对象的引用
    private GameObject mainCamera;
    
    // 存储FirstPersonController对象的引用
    private GameObject firstPersonController;
    
    // 存储当前活动的相机
    private bool isMainCameraActive = false;

    private void Start()
    {
        // 在开始时获取Main Camera对象
        mainCamera = GameObject.Find("Main Camera");
        
        // 在开始时获取FirstPersonController对象
        firstPersonController = GameObject.Find("FirstPersonController");
        
        // 如果Main Camera不存在，输出警告
        if (mainCamera == null)
        {
            Debug.LogWarning("没有在场景中找到Main Camera对象!");
        }
        
        // 如果FirstPersonController不存在，输出警告
        if (firstPersonController == null)
        {
            Debug.LogWarning("没有在场景中找到FirstPersonController对象!");
        }
        
        // 初始化状态：Main Camera隐藏，FirstPersonController显示
        if (mainCamera != null)
        {
            mainCamera.SetActive(false);
        }
        if (firstPersonController != null)
        {
            firstPersonController.SetActive(true);
        }
    }

    private void Update()
    {
        // 检测P键是否被按下
        if (Input.GetKeyDown(KeyCode.P))
        {
            // 切换相机
            ToggleCameras();
        }
    }

    private void ToggleCameras()
    {
        // 如果Main Camera和FirstPersonController都存在
        if (mainCamera != null && firstPersonController != null)
        {
            // 切换状态
            isMainCameraActive = !isMainCameraActive;
            
            // 设置Main Camera的活动状态
            mainCamera.SetActive(isMainCameraActive);
            
            // 设置FirstPersonController的活动状态（与Main Camera相反）
            firstPersonController.SetActive(!isMainCameraActive);
        }
        else
        {
            // 如果Main Camera不存在，尝试重新获取
            if (mainCamera == null)
            {
                mainCamera = GameObject.Find("Main Camera");
                if (mainCamera != null)
                {
                    mainCamera.SetActive(isMainCameraActive);
                }
                else
                {
                    Debug.LogWarning("没有在场景中找到Main Camera对象!");
                }
            }
            
            // 如果FirstPersonController不存在，尝试重新获取
            if (firstPersonController == null)
            {
                firstPersonController = GameObject.Find("FirstPersonController");
                if (firstPersonController != null)
                {
                    firstPersonController.SetActive(!isMainCameraActive);
                }
                else
                {
                    Debug.LogWarning("没有在场景中找到FirstPersonController对象!");
                }
            }
        }
    }
}